<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="AAuto" /> 
<title>等待网页下载</title>
<link href="../style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="maincontent">
<h1>等待网页下载</h1>
 <div class="desc">参考:<a href="../libraries/std/web/html.html"></a> <a href="webform.html">创建web窗体</a> <a href="html.html#dom">什么是DOM</a> <a href="getele.html">获取DOM节点对象</a></div>
  <div>
    <h2>等待网页下载</h2>
    <p>我们需要控制网页上的DOM对象,就需要等待网页下载,DOM对象成功创建,否则获取节点将会失败,网页等待是web模拟控制技术的重要组成部份,下面我们介绍web窗体提供的等待下载有关的函数.</p>
    <div class="tip">&nbsp;本手册中约定使用 wb变量名表示web.form类创建的web窗体对象.使用ele表示web窗体中的元素对象,这也是AAuto中默认约定具有特殊意义的变量名,不应将这些默认变量名用于其他目的.</div>
    <p>&nbsp;</p>
  </div>
  <div>
    <h2>wb.wait<a name="wait" id="wait"></a></h2>
  <p>&nbsp;</p>
  <p><strong>1、函数原型：</strong><br />
  </p>
  <pre>是否成功下载 = wb.wait( 等待的网址 )</pre>
  <p><br />
    <strong>2、函数说明：</strong><br />
    <br /> 
    这是很重要的一个函数,在调用wb.go或wb.post打开网页以后,使用此函数可以等待目标网页完全打开.在页面完全打开以后,我们才能获取并控制网页节点对象.</p>
  <p>等待的网址是一个可选参数,支持 <a href="../libraries/kernel/string/pattern syntax.html">模式查找语法</a><br />
    如果不指定参数,则等待当前网页完全下载完毕.<br />
    <br />
    如果打开网址时遇到错误,该函数返回false<br />
  </p>
</div>
<div>
    <h2>wb.waitDoc<a name="waitDoc" id="waitDoc"></a></h2>
  <p>&nbsp;</p>
  <p><strong>1、函数原型：</strong><br />
  </p>
  <pre>document = wb.waitDoc( 框架名 )</pre>
  <p><br />
    <strong>2、函数说明：</strong><br />
    <br />
此函数内部循环调用 <a href="getele.html#getDoc">wb.getDoc</a> ,如果发现文档对象已成功创建就立即返回,而不是等到整个网页下载完毕.<br />
因为网络的原因,或者网站本身设计的问题,有一些网页可能很久都显示&quot;正在下载中......&quot;,而实际上网页已经全部显示了,正在下载的可能是一些我们根本用不到的HTML节点.这时候这个函数就很有用.<br />
<br />
如果关闭web窗体,wb.waitDoc则返回null </p>
  <p><strong>3、调用示例</strong><br />
  </p>
  <pre><span class="comment">//....省略创建web窗体的代码,请在快手中点击&quot;主菜单-&gt;新建文件-&gt;新建web窗体&quot;</span>

<span class="comment">//打开目标网站</span>
wb.go(&quot;http://www.ecranesoft.com/&quot;)
<span class="comment">//显示窗体</span>
winform.show(true) 

doc = wb.waitDoc(); 
</pre>
  <p><br />
  </p>
</div>
<div>
  <h2>wb.waitEle<a name="waitEle" id="wait2"></a></h2>
  <p>&nbsp;</p>
  <p><strong>1、函数原型：</strong><br />
  </p>
  <pre>是否成功下载 = wb.waitEle( HTML节点的ID名name, 框架名 )</pre>
  <p><br />
    <strong>2、函数说明：</strong><br />
    <br />
    此函数内部循环调用 <a href="getele.html#getEle">wb.getEle</a> ,如果发现该节点已成功创建就立即返回,而不是等到整个网页下载完毕.<br />
  因为网络的原因,或者网站本身设计的问题,有一些网页可能很久都显示&quot;正在下载中......&quot;,而实际上网页已经全部显示了,正在下载的可能是一些我们根本用不到的HTML节点.这时候这个函数就很有用.<br />
  <br />
  如果关闭web窗体,wb.waitEle则返回null,否则该函数一直尝试获取指定的节点,一旦获取成功就返回该节点.</p>
  <p><strong>3、调用示例</strong><br />
  </p>
  <pre><span class="comment">//....省略创建web窗体的代码,请在快手中点击&quot;主菜单-&gt;新建文件-&gt;新建web窗体&quot;</span>

<span class="comment">//打开目标网站</span>
wb.go("http://www.ecranesoft.com/")
<span class="comment">//显示窗体</span>
winform.show(true) 
ele = wb.waitEle( <span class="string">"__VIEWSTATE" </span>);<span class="comment">//等待指定网址,可以使用模式匹配语法</span>

io.open()
io.print( ele.outerHTML )
</pre>
</div>
<div>
  <h2>wb.waitClose</h2>
  <p>&nbsp;</p>
  <p><strong>1、函数原型：</strong><br />
  </p>
  <pre>wb.waitClose()</pre>
  <p><br />
    <strong>2、函数说明：</strong><br />
    <br />
  等待web窗体关闭.</p>
</div> 
</div></body>
</html>